const { Controller } = require('egg');

class WechatController extends Controller {
  async login() {
    const { ctx } = this;
    // ctx.body = typeof ctx.app.passport.authenticate;
    console.log('logins', ctx.passport);
    // 发起微信登录请求
    const authenticateMiddleware = ctx.app.passport.authenticate('wechat');
    try {
      const user = await authenticateMiddleware(ctx);
      ctx.body = '陈工';
      console.log('user', user);
    } catch (e) {
      console.log(e);
      ctx.body = '发生错误';

    }

  }

  async callback() {
    const { ctx } = this;
    // 处理微信授权回调，获取用户信息
    ctx.app.passport.authenticate('wechat', {
      async success(user) {
        // 这里可以进一步处理用户信息，比如存储到数据库等
        ctx.body = {
          success: true,
          user,
        };
      },
      failure(err) {
        // 处理授权回调失败的情况
        ctx.body = {
          success: false,
          error: err.message,
        };
      },
    });
  }
}

module.exports = WechatController;
